package com.dragon.modules.yuegou.enums.product;

import com.fasterxml.jackson.annotation.JsonCreator;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 展示模块
 * 
 * @author pbuilder generated
 *
 */
public enum SpuShowModule {

	/**
	 * 优选好货
	 */
	GOODS(0, "优选好货"),
	/**
	 * 积分商城
	 */
	SHOP(1, "积分商城"),
	/**
	 * 套餐
	 */
	PACKAGE(2, "套餐"),
	/**
	 * 商户停车券
	 */
	MERCHANT(3, "商户停车券"),
	/**
	 * 限时折扣
	 */
	LIMITSALES(4, "限时折扣"),
	/**
	 * 秒杀
	 */
	SECKILL(5, "秒杀"),
	/**
	 * 拼团
	 */
	COLLAGE(6, "拼团"),
	/**
	 * 助力砍价
	 */
	HELP(7, "助力砍价"),
	/**
	 * 套餐子商品
	 */
	PACKAGE_ITEM(10, "套餐子商品"),
	/**
	 * 奖品
	 */
	PRIZE(11, "奖品"),
	/**
	 * 到家商品
	 */
	GOHOME(12, "到家商品"),
	/**
	 * 不显示
	 */
	NOSHOW(13, "不显示"),
	/**
	 * 商户优惠券
	 */
	DISCOUNTCOUPON(14, "商户优惠券"),
	
	/**
	 * 免费商品
	 */
	FREE(15, "免费商品");

	/**
	 * 枚举标识
	 */
	private final Integer code;

	/**
	 * 别名
	 */
	private final String alias;

	private SpuShowModule(Integer code, String alias) {
		this.code = code;
		this.alias = alias;
	}
	
	public Integer getValue() {
		return code;
	}

	/**
	 * 枚举标识
	 * 
	 * @return code
	 */
	public Integer getCode() {
		return code;
	}

	/**
	 * 别名
	 * 
	 * @return alias
	 */
	public String getAlias() {
		return alias;
	}

	/**
	 * 把code转化为费用类型枚举
	 * 
	 * @param code 代码
	 * @return
	 */
	@JsonCreator
	public static SpuShowModule from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for SpuShowModule
	 */
	private static final Map<Integer, SpuShowModule> CODE_MAP = Stream.of(SpuShowModule.values())
			.collect(Collectors.toMap(SpuShowModule::getCode, e -> e));

}
